As use of computer networks and the Internet continues to expand, the amount of streaming media content continues to grow. For a wired or wireless network, more media rich content is being delivered. In the meantime, an increasing amount of computing resources are being deployed to help the adaptation of the media rich content in order to suit heterogeneous networks and clients.
One method for adapting media rich content to suit a wide array of networks and client devices is transcoding. Transcoding adapts streaming media data for viewing in different formats by adjusting the screen size output and adjusting the bandwidth. Essentially, transcoding adjusts the streaming media according to the characteristics of the viewing device. For example, Digital Video Disc (DVD) quality MPEG-2 data intended for DVD display may be displayed on a small mobile electronic device by reducing the screen size and the bandwidth to account for the viewing characteristics of the electronic device.
Once a transcoding session has begun, it may be desirable to move the session from one server to another. For example, in the event of server failure, another transcoding unit should be able to pick up the transcoding session so that the client session can be continued. Alternatively, due to the overhead required to handle client requests, it may be necessary for one transcoding unit to handoff the tasks it cannot handle to another transcoding that can better serve the client. (e.g., to assist in load balancing). Also, it may be desirable to handoff transcoding sessions to account for the mobility of the receiving electronic device.
Current methods of data session handoff only handle handoff of a communication session at the network level, e.g., a transmission control protocol (TCP) session or real-time transport protocol (RTP) streaming session. A transcoding session uses computing resources to manipulate multimedia streams in order to ease congestion in the network or suit limitations of client devices. The handoff of this kind of transcoding session is different than the handoff of a network connection. Transcoding session handoff is based on the transfer of not only streaming status but also processing status.
If there is no transcoding session handoff capability, one transcoding unit can only handle a limited amount of user requests. Therefore user requests can be denied even if there are other transcoding units available. Also, in a mobile wireless network, if the mobile client has been moved to another location, it is disadvantageous to perform a transcoding session further away from the client while a transcoding unit closer to the client is available.
Moreover, the current data handoff solutions do not provide for seamless handoff of streaming media data sessions in all circumstances. It is desirable that the client is unaware of the handoff, e.g., the handoff should be glitch-free and seamless. In current solutions, the handoff occurs at the network or transport levels, thus adversely affecting the seamlessness of the handoff.
Although portions of the above-listed discussion specifically mention the shortcomings of prior art approaches with respect to the streaming of video data for simplified presentation, such shortcomings are not limited solely to the streaming of video data. Instead, the problems of the prior are span various types of media including, but not limited to, audio-based data, speech-based data, image-based data, graphic data, web page-based data, and the like. Moreover, streaming media typically shares the property that the media streams must be delivered with a relative time constraint and thus share the notion of a stream.